# -*- coding: utf-8 -*-
"""
@文件    :   Students_operate2.py
@时间    :   2022/05/28 09:01:36
@作者    :   YTNetMan
@版本    :   1.0
@邮箱    :   ytnetman@163.com
@版权    :   (C)Copyright 2022-2025
@分类    :   办公自动化
@功能    :   对数据列的增改删等操作
"""

import numpy as np
import pandas as pd

page_001 = pd.read_excel('./doc/Students_operate2.xlsx',sheet_name='Page_001')
page_002 = pd.read_excel('./doc/Students_operate2.xlsx',sheet_name='Page_002')
#纵向联结两个工作簿
students = pd.concat([page_001,page_002]).reset_index(drop=True)
#横向联结两个工作簿，对数据分析来说没有用，知道即可
#students = pd.concat([page_001,page_002],axis=1).reset_index(drop=True)
#追加列的3种方法
#1、直接给出数
#students['Age'] = 25
#2、np的repeat方法
#students['Age'] = np.repeat(25,len(students))
#3、np的arange方法
students['Age'] = np.arange(0,len(students))

#删除列
students.drop(columns=['Age','Score'],inplace=True)

#插入列
students.insert(1,column='Foo',value= np.repeat(55,len(students)))

#修改列名
students.rename(columns={'Foo':'FOO','Name':'NAME'})

#删除包含NaN数据的行列
#搭建一个包含NaN数据的实例
#ID必须是浮点型才可能有空数据，转换类型
students['ID'] = students['ID'].astype(float)
#删除5到15ID列的数据
for i in range(5, 15):
    students['ID'].at[i] = np.nan

#删除所有包含NAN数据的行
students.dropna(inplace=True)
#把类型恢复初始值
students['ID'] = students['ID'].astype(int)
print(students)
